﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using Logica;
using Datos;
using Datos.Entidades;
using Logica.Comandos;
using Datos.Fabricas;
using Logica.FabricaLogica;
using Datos.Entidades.FabricaEntidades;
using Logica.Comandos.ComandosAdministracionCategoria;

namespace Pruebas
{
    [TestFixture]
    public class PruebaParticipante
    {
        [TestCase]
        public void PruebaAgregarParticipante()
        {
            bool respuesta = false;
            Entidad participante = FabricaEntidades.ObtenerParticipante();
            (participante as Participante).NombreParticipante = "Prueba";
            (participante as Participante).Categoria = 3;

            Comando comando = FabricaComandoParticipante.CrearComandoCrearParticipante(participante);
            comando.Ejecutar();
            if (!comando.Flag)
                respuesta = false;
            else

                respuesta = true;
            Assert.AreEqual(respuesta, true);
        }


        [TestCase]
        public void PruebaConsultarParticipante()
        {
            bool respuesta = false;
            List<Entidad> listaParticipantes = new List<Entidad>();
            Comando comando = FabricaComandoParticipante.CrearComandoListarParticipante();
            comando.Ejecutar();
            listaParticipantes = comando.ListaEntidad;
            if (listaParticipantes != null)
            {

                respuesta = true;

            }
            Assert.AreEqual(respuesta, true);
          
        }

        [TestCase]
        public void PruebaModificarParticipante()
        {
            bool respuesta;
            Entidad participante = FabricaEntidades.ObtenerParticipante();
            (participante as Participante).IdParticipante = 29;
            (participante as Participante).NombreParticipante = "Prueba";
            

            (participante as Participante).Categoria = 3;


            Comando comando = FabricaComandoParticipante.CrearComandoModificarParticipante(participante);
            comando.Ejecutar();
            if (!comando.Flag)
                respuesta= false;
            else

                respuesta= true;
            Assert.AreEqual(respuesta, true);
        }
    }
}
